package com.zjdiepu.www.proxy.dao.transfer;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.zjdiepu.www.proxy.model.ext.transfer.TransferYwOrdernoBankExt;
import com.zjdiepu.www.proxy.model.dto.transfer.TransferYwOrdernoBank;

/**
 * 中转_yw_银行订单号dao层操作<br/>
 * @author xiongxiaotun<br/>
 * @time 2017年12月18日 13时06分<br/>
 * @since 1.0<br/>
 */
public interface TransferYwOrdernoBankMapper {
	/**
	 * 主键删除
	 * @param id
	 * @return
	 */
	int deleteByPrimaryKey(String id);

	/**
	 * 添加记录
	 * 
	 * @param transferYwOrdernoBank
	 * @return
	 */
	int insert(TransferYwOrdernoBank transferYwOrdernoBank);

	/**
	 * 批量添加记录
	 * @param transferYwOrdernoBanks
	 * @return
	 */
	int insertBatch(List<TransferYwOrdernoBank> transferYwOrdernoBanks);

	/**
	 * 主键查询
	 * @param id
	 * @return
	 */
	TransferYwOrdernoBank selectByPrimaryKey(String id);

	/**
	 * 主键更新：只更新不是null值字段，字符串还要求trim()后长度不为0
	 * @param transferYwOrdernoBank
	 * @return
	 */
	int updateByPrimaryKeySelective(TransferYwOrdernoBank transferYwOrdernoBank);

	/**
	 * 主键更新
	 * @param transferYwOrdernoBank
	 * @return
	 */
	int updateByPrimaryKey(TransferYwOrdernoBank transferYwOrdernoBank);
	
	/**
	 * 条件查询
	 * @param transferYwOrdernoBankExt
	 * @return
	 */
	List<TransferYwOrdernoBank> selectByExt(TransferYwOrdernoBankExt transferYwOrdernoBankExt);
	
	/**
	 * 条件统计
	 * @param transferYwOrdernoBankExt
	 * @return
	 */
	int countByExt(TransferYwOrdernoBankExt transferYwOrdernoBankExt);
	
	/**
	 * 根据主键清除空字段，设置值为null
	 * @param fieldNames 字段名
	 * @param id 主键
	 */
	void clearEmpty(@Param("fieldNames")Set<String> fieldNames, @Param("id")String id);
	/**
	 * 精确统计(=)
	 * @author xiongxiaotun
	 * @time 2017年12月18日 13时06分
	 * @since 1.0
	 * @update
	 * @param sysPower
	 * @return
	 */
	int countRefined(TransferYwOrdernoBank transferYwOrdernoBank);
	/**
	 * 精确查询(=)
	 * @author xiongxiaotun
	 * @time 2017年12月18日 13时06分
	 * @since 1.0
	 * @update
	 * @param transferYwOrdernoBank
	 * @return
	 */
	TransferYwOrdernoBank selectRefined(TransferYwOrdernoBank transferYwOrdernoBank);
	
	/**
	 * @author xiongxiaotun <br/>
	 * @Title delectRefined  <br/>
	 * @Description 精确删除(=) <br/>
	 * @param  transferYwOrdernoBank
	 * @return
	 * @version V1.0  <br/>
	 */
	int deletedRefined(TransferYwOrdernoBank transferYwOrdernoBank);
	
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: updateBatch  <br/>
	 * @Description:批量删除/禁用/启用  <br/>
	 * @param modifier 修改人
	 * @param modifierName 修改人名称
	 * @param modified 修改时间（秒）
	 * @param dpStatus 修改后状态
	 * @param ids 待修改数据ID
	 * @return
	 * @version V1.0  <br/>
	 */
	int updateBatch(@Param("modifier")String modifier, @Param("modifierName")String modifierName, @Param("modified")Integer modified,
			@Param("dpStatus")Integer dpStatus, @Param("ids")List<String> ids);
	
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: updateCommonBatch  <br/>
	 * @Description:批量修改  <br/>
	 * @param transferYwOrdernoBank 修改后数据
	 * @param ids 待修改数据ID
	 * @return
	 * @version V1.0  <br/>
	 */
	int updateCommonBatch(@Param("transferYwOrdernoBank")TransferYwOrdernoBank transferYwOrdernoBank, @Param("ids")List<String> ids);

}